package io.github.yotta.dict.api.param;


import io.github.yotta.common.api.model.ApiRequest;
import io.github.yotta.common.utils.param.ParamUtil;
import io.github.yotta.dict.api.enums.SysDictStatus;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.util.HashMap;
import java.util.Map;

/**
* @author yotta-generator
* @date 2025-08-11 10:12:20
* 系统字典表 - 添加参数模型
*/
@EqualsAndHashCode(callSuper = true)
@Data
@Accessors(chain = true)
public class SysDictAddParam extends ApiRequest {


    /**
    * 字典的编码，全局唯一
    */
    private String code;

    /**
    * 字典的分类,提供该分类可以查出一类字典配置
    */
    private String category;

    /**
    * 排序
    */
    private Integer sort = 0;

    /**
    * 状态，0：正常；1：隐藏
    */
    private Integer status = SysDictStatus.NORMAL.getCode();

    /**
    * 字典的值
    */
    private String value;


    /**
    * 字典的显示名称
    */
    private String displayName;

    /**
    * 字典的描述
    */
    private String description;

    /**
    * 创建人
    */
    private String createdBy;

    /**
     * 字典的扩展字段
     */
    private Map<String, String> extra = new HashMap<>();

    @Override
    public void checkValid() {
        super.checkValid();
        ParamUtil.nonNull(code, "code.not.be.null");
        ParamUtil.notEmpty(value, "code.not.be.empty");
        ParamUtil.notEmpty(displayName, "displayName.not.be.empty");
        ParamUtil.nonNull(sort, "sort.not.be.null");
        ParamUtil.notEmpty(category, "category.not.be.empty");

    }
}
